Support specifying a client certificate for mTLS auth #940
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Using a reverse-proxy with mTLS (client authentication) is a decent way to expose your self-hosted services on the internet.
This PR adds support for using a certificate that's installed in your Android device.
The changes are largely based on:
An optional client certificate can be selected when adding self-hosted accounts (FreshRSS, Google Reader and Fever APIs):
![](https://private-user-images.githubusercontent.com/1063155/400199297-106d6f86-240b-47e9-a828-48385245dae2.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk1ODgxMjQsIm5iZiI6MTczOTU4NzgyNCwicGF0aCI6Ii8xMDYzMTU1LzQwMDE5OTI5Ny0xMDZkNmY4Ni0yNDBiLTQ3ZTktYTgyOC00ODM4NTI0NWRhZTIucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI1MDIxNSUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNTAyMTVUMDI1MDI0WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9ZmE0NThkYjQ3NDM4NjNhODE1NTAzYWNkMGZiMjA2YjRhMTU2MWE4MzRhNzcwMGM4YTU5ODNkNDM5YjQ5MTA4MSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.1yMpqIVZlJPpbGwwGOFXIf1Mp4uBy6gZAvCLCNEUeJE)
![](https://private-user-images.githubusercontent.com/1063155/400199320-5a89e332-3f8a-4292-b8cb-65381f95a800.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk1ODgxMjQsIm5iZiI6MTczOTU4NzgyNCwicGF0aCI6Ii8xMDYzMTU1LzQwMDE5OTMyMC01YTg5ZTMzMi0zZjhhLTQyOTItYjhjYi02NTM4MWY5NWE4MDAucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI1MDIxNSUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNTAyMTVUMDI1MDI0WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9OTIzODQ2NmQyMzQzNzBkMmM4ODliYjMyNjExY2ZmYmM1OWRhOWJkY2E5MDE3MWM2M2IyNjQyNDgwODcyMGU1MSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.H2_gT6elCTWItq98oBYLIPuBqicJ3u8Gb9gs9uBCZYg)
It can later be changed/removed when viewing the account details:
![](https://private-user-images.githubusercontent.com/1063155/400199398-a259b6d4-690f-463c-89d2-a32cdc8a779e.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk1ODgxMjQsIm5iZiI6MTczOTU4NzgyNCwicGF0aCI6Ii8xMDYzMTU1LzQwMDE5OTM5OC1hMjU5YjZkNC02OTBmLTQ2M2MtODlkMi1hMzJjZGM4YTc3OWUucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI1MDIxNSUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNTAyMTVUMDI1MDI0WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9YzhkYTVlZjg0YWQ3NDhlZGRlYzRlZmM3OTg3YzU2YTY3NDUwNWY0ZTIzMjM4ZTk2YzA4MDAwMTc5MjNhZjM0MiZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.E3b7dmAAiu6U4tXpw9nKym2myCCNBMA1QmQvH1uIXLk)
I'm comfortable with the logic changes, but I have not much experience with Compose, so my code there can be sub-optimal.